package com.neuedu.javase.tools;

import java.util.HashSet;
import java.util.Objects;
import java.util.Set;

/***
 * 项目名称:  MyJavaSE 
 * 包：  com.neuedu.javase.tools 
 * date:   2025/10/29   13:33  
 * 描述:  
 *  @author : 张金山
 *  作者博客:   https://blog.fulfill.com.cn
 */
public class Human {

    private String name;
    private int age;


    public Human(String name) {
        this.name = name;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                '}';
    }



    //使用IDEA的模板生成equals  ALT + INSERT

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Human human = (Human) o;
        return age == human.age && Objects.equals(name, human.name);
    }

    @Override
    public int hashCode() {
        int result = Objects.hashCode(name);
        result = 31 * result + age;
        return result;
    }



    public static void main(String[] args) {
        //创建第一个对象
        Human p1 = new Human("张三");
        // 创建第二个对象
        Human p2 = new Human("张三");

        System.out.println("p1.hashCode() = " + p1.hashCode());
        System.out.println("p2.hashCode() = " + p2.hashCode());


        // 暂时先试用下  set 是一个集合  特性 同一个对象 只存放一次   根据  hashcode  和  equals
        Set set = new HashSet();

        set.add(p1);
        set.add(p1);
        set.add(p2);

        System.out.println(set);


    }
    
    
    
    
}
